﻿using Comm100.Framework.Domain.Services;
using Bot.Domain.Bo;
using Bot.Domain.Entities;
using System;
using System.Collections.Generic;
using System.Text;

namespace Bot.Domain.Interfaces
{
    public interface IIntentAnswerInChannelDomainService : IDomainService
    {
        IntentAnswerInChannel Create(IntentAnswerInChannel intentAnswerInChannel);

        IntentAnswerInChannel Get(Guid id, string include = "");

        IntentAnswerInChannel Update(IntentAnswerInChannelUpdateBo id);

        IEnumerable<IntentAnswerInChannel> List();

        void Delete(Guid id);

        IEnumerable<IntentAnswerInChannel> GetByIntentId(Guid intentId, string include="");
        IntentAnswerInChannel GetByIntentIdAndChannel(Guid intentId, string channel);
        void UpdateForAuthenticationRequestId(Guid intentAnswerInChannelId, Guid authenticationRequestId);
        void UpdateForFormId(Guid intentAnswerInChannelId, Guid formId);
        void UpdateForLocationRequestId(Guid intentAnswerInChannelId, Guid locationRequestId);
        IntentAnswerInChannel GetByAuthenticationRequestId(Guid authenticationRequestId);
        IntentAnswerInChannel GetByFormId(Guid formId);
        IntentAnswerInChannel GetByLocationRequestId(Guid locationRequestId);
    }
}
